#!/bin/bash
#
# lib/cinder_backends/netapp_iscsi
# Configure the NetApp iSCSI driver

# Enable with:
#
#  iSCSI:
#   CINDER_ENABLED_BACKENDS+=,netapp_iscsi:<volume-type-name>

# Dependencies:
#
# - ``functions`` file
# - ``cinder`` configurations

# ``CINDER_CONF``
# ``CINDER_CONF_DIR``
# ``CINDER_ENABLED_BACKENDS``

# configure_cinder_backend_netapp_iscsi - configure iSCSI

# Save trace setting
_XTRACE_CINDER_NETAPP=$(set +o | grep xtrace)
set +o xtrace


# Entry Points
# ------------

# configure_cinder_backend_netapp_iscsi - Set config files, create data dirs, etc
function configure_cinder_backend_netapp_iscsi {
    # To use NetApp, set the following in local.conf:
    # CINDER_ENABLED_BACKENDS+=,netapp_iscsi:<volume-type-name>
    # NETAPP_MODE=ontap_7mode|ontap_cluster
    # NETAPP_IP=<mgmt-ip>
    # NETAPP_LOGIN=<admin-account>
    # NETAPP_PASSWORD=<admin-password>
    # NETAPP_ISCSI_VOLUME_LIST=<volumes>

    # In ontap_cluster mode, the following also needs to be defined:
    # NETAPP_ISCSI_VSERVER=<vserver-name>

    local be_name=$1
    iniset $CINDER_CONF $be_name volume_backend_name $be_name
    iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.netapp.common.NetAppDriver"
    iniset $CINDER_CONF $be_name netapp_storage_family ${NETAPP_MODE:-ontap_7mode}
    iniset $CINDER_CONF $be_name netapp_server_hostname $NETAPP_IP
    iniset $CINDER_CONF $be_name netapp_login $NETAPP_LOGIN
    iniset $CINDER_CONF $be_name netapp_password $NETAPP_PASSWORD
    iniset $CINDER_CONF $be_name netapp_volume_list $NETAPP_ISCSI_VOLUME_LIST

    iniset $CINDER_CONF $be_name netapp_storage_protocol iscsi
    iniset $CINDER_CONF $be_name netapp_transport_type https

    if [[ "$NETAPP_MODE" == "ontap_cluster" ]]; then
        iniset $CINDER_CONF $be_name netapp_vserver $NETAPP_ISCSI_VSERVER
    fi
}


# Restore xtrace
$_XTRACE_CINDER_NETAPP

# Local variables:
# mode: shell-script
# End:
